<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //1.运行如下代码，在实验报告中写出所有变量的输出结果，
        //同时思考最后一段代码结果的原因。
        //第一题 199000749许业娜
        // let a1,b1,c1=[1,2,3,];
        // console.log(a1,b1,c1);

        // let [a2,b2,c2]=[1,2,3,];
        // console.log(a2,b2,c2);

        // let [a3,b3,c3]=[1, ,3,];
        // console.log(a3,b3,c3);  
        // let [a4,b4]=[1];
        // console.log(a4,b4);

        // let {y:a5,b5}={x:1,y:2};
        // console.log(a5,b5);

        // let {a6,b6}=123;  //let声明的变量只在let所在代码块"{}"的内部有效，在外部无法访问，所以会显示未定义。
        // console.log(a6,b6);

    

        //2.运行如下代码，写出实验结果。
        //199000749许业娜
        // let set=new Set();
        // set.add(1);
        // set.add(2);
        // set.add(3);
        // set.delete(2);

        // let i=set.values();
        // console.log(i.next());
        // console.log(i.next());
        // console.log(i.next());

        //运行以下代码，
        //写出为什么最后一段代码没有输出任何结果的原因
        //第三题 199000749许业娜
        // let map=new Map();
        // map.set(1,"a");
        // map.set(2,"b");
        // map.set(3,"c");
        // map.set(4,"d");

        // for(let i=1;i<=map.size;i++)
        // {
        //     console.log(map.get(i));
        // }
        // map.forEach(function(value,key){
        //     console.log(value);
        // });
        // for(let v of map.values())
        // {
        //     console.log(v);
        // }
        // for(var prop in map)   //for和in的组合是访问的键，不能循环输出一个键值对
        // {
        //     console.log(prop);
        // }

        //4.运行如下代码，在实验报告中写运行结果，
        //并简要阐述原因。
        //199000749许业娜
        // let arr1=[1,2,3];
        // let arr2=arr1;     
        // console.log(arr1==arr2);    //arr1的值直接复制给了arr2,所以他们相等

        // let arr3=[...arr1];
        // console.log(arr1==arr3);   //拓展运算符直接接把他们变成了参数序列

        //5 用箭头函数改写如下代码，
        //在实验报告中写出改写后的代码
        //199000749许业娜
        // let arr4=[1,2,3];
        // arr4.forEach(function(v,k){
        //     console.log(v);
        // })
        // let arr5=[1,2,3];
        // arr5.forEach(i=>console.log(i));

        //6.运行如下代码，在实验报告中写出这两句代码的作用。
        //199000749许业娜
        // Array.of(1,2,3).filter(i=>i>1).forEach(i=>console.log(i)); //filter填充一个数组，遍历数组输出一个大于一的数
        // let fib=n=>n>1?fib(n-1)+fib(n-2):n;  //函数的递归调用

        //7.使用class和extends实现如下关系，测试并编写代码实现。
        //199000749许业娜
        // class Animal{
        //     constructor(name){
        //         this.name=name;
        //     }
        //     shout(){
        //         return this.name+"在叫";
        //     }
        // }
        // class Dag extends Animal{
        //     constructor(name,age){
        //         super(name);
        //         this.name=name;
        //         this.age=age;
        //     }
        //     eat(){
        //         return this.name+this.age+"岁了，"+"正在吃";
        //     }
        // }
        // var dag=new Dag("狗","3");
        // console.log(dag.eat());
        // var cat = new Animal("猫");
        // console.log(cat.shout());

    </script>
</body>
</html>